﻿Imports System.Data.SqlClient
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Enterprise
Imports System.Drawing.Font
Imports DMC.Land.User
Imports Microsoft.Reporting.WinForms
Public Class somucke

    Private strMaHoSoCapGCN As String = ""
    Private conn As New SqlConnection
    Private strMaDVHC As String = ""
    Private strConnection As String = ""
    Private DTChinh As New DataTable
    Private dtsub As New DataTable
    Private dtNoiDung As New DataTable
    Public Property DB() As DataTable
        Get
            Return DTChinh
        End Get
        Set(ByVal value As DataTable)
            DTChinh = value
        End Set
    End Property
    Public Property TB() As DataTable
        Get
            Return dtsub
        End Get
        Set(ByVal value As DataTable)
            dtsub = value
        End Set
    End Property
    Public Property TT() As DataTable
        Get
            Return dtNoiDung
        End Get
        Set(ByVal value As DataTable)
            dtNoiDung = value
        End Set
    End Property
    Public Property Connection() As String
        Get
            Return strConnection
        End Get
        Set(ByVal value As String)
            strConnection = value
        End Set
    End Property

    Public Function fileReport() As String
        Dim ViTri As Short
        Dim path As String
        ViTri = InStr(4, Application.ExecutablePath, "\", CompareMethod.Binary)
        path = Application.ExecutablePath.Substring(0, ViTri) & Application.ProductName
        Dim file As String = ""
        file = Application.StartupPath & "\ReportsBC\Report4.rpt"
        Return file
    End Function
    Public Sub LoadReport()

        reportDocument1.FileName = fileReport()
        KNReports(reportDocument1)
        ' reportDocument1.Subreports("SoMucKeChinh").SetDataSource(DTChinh)
        ' reportDocument1.Subreports("NoiDung").SetDataSource(dtNoiDung)
        reportDocument1.Subreports("SoMucKeCon").SetDataSource(dtsub)
        reportDocument1.SetDataSource(DTChinh)

        CrystalReportViewer1.ReportSource = reportDocument1



        'ReportViewer1.Reset()         'reset cái Reportviewer
        'ReportViewer1.LocalReport.ReportEmbeddedResource = "rptSoMucKe.rdlc" 'gán cái Report mà ta đã thiết kế ở trên vào Reportviewer ("MyTestProgram" chính là tên NameSpace gốc - với VB.NET thì tên namespace gốc mặc định trùng với tên Project)
        'ReportViewer1.LocalReport.DataSources.Clear()    'Clear DataSource cũ của Report (lúc thiết kế report, ta làm trên Datatable rỗng nên ở đây ta clear nó đi để thêm Datatable thực sự của ta vào)
        'Dim newDataSource As Microsoft.Reporting.WinForms.ReportDataSource = New Microsoft.Reporting.WinForms.ReportDataSource("DataSet1_SoMucKe", DTChinh)  'tạo DataSource mới cho Report. Lưu ý: tên "dsCallLogs_tbl_Call_Logs" chính là tên ghép của Dataset và Datatable ta thiết kế ở bước 2.2.
        'ReportViewer1.LocalReport.DataSources.Add(newDataSource)      'gán DataSource mới tạo vào Report
        'Dim Parameters As List(Of ReportParameter) = New List(Of ReportParameter)  'Tạo danh sách các Parameter để truyền cho Report
        'Dim param As ReportParameter
        ''param = New ReportParameter("fromDate", dtpFromDate.Value.ToString("dd/MM/yyyy")) 'parameter "FromDate" của report
        'Parameters.Add(param)
        'param = New ReportParameter("toDate", dtpToDate.Value.ToString("dd/MM/yyyy"))     'parameter "ToDate" của report
        'Parameters.Add(param)
        'param = New ReportParameter("phoneNumber", txtCallerId.Text)   'parameter "PhoneNumber" của Report
        'Parameters.Add(param)
        'ReportViewer1.LocalReport.SetParameters(Parameters)   'gán danh sách các Parameter vào Report
        'ReportViewer1.RefreshReport()                                   'gọi RefreshReport() để bắt đầu hiển thị
        ' ReportViewer1.LocalReport.DisplayName = "Call Logs"     'nếu bạn bỏ qua bước này, khi report hiện ra và bạn muốn export nó ra excel hoặc PDF thì VS sẽ lấy tên mặc định cho file export là rptCallLogs.
        ' ReportViewer1.SetDisplayMode(DisplayMode.PrintLayout) 'bắt Reportviewer hiển thị ở chế độ PrintLayout (trông sẽ đẹp mắt hơn)
        'ReportViewer1.ZoomMode = ZoomMode.Percent            'đặt chế độ Zoom cho report là theo phần trăm
        'ReportViewer1.ZoomPercent = 100                             'và zoom nó lên 100%



    End Sub
    Public Sub KNReports(ByVal reportDocument As CrystalDecisions.CrystalReports.Engine.ReportDocument)
        Try
            Dim tliCurrent As CrystalDecisions.Shared.TableLogOnInfo
            Dim tbCurrent As CrystalDecisions.CrystalReports.Engine.Table
            For Each tbCurrent In reportDocument.Database.Tables
                tliCurrent = tbCurrent.LogOnInfo
                With tliCurrent.ConnectionInfo
                    .ServerName = "QUANGPS-PC"
                    .DatabaseName = "georgetown"
                    .UserID = "sa"
                    .Password = "quangps"

                End With
                tbCurrent.ApplyLogOnInfo(tliCurrent)
            Next tbCurrent
        Catch ex As Exception
            'MessageBox.Show(ex.ToString)
        End Try


    End Sub
    Private Sub somucke_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub
End Class